package com.wfy.modules.tencent.service.impl;

import com.google.common.collect.Maps;
import com.wfy.common.config.TencentAiConfig;
import com.wfy.modules.tencent.common.ResponseEntity;
import com.wfy.modules.tencent.config.TencentAPI;
import com.wfy.modules.tencent.entity.FacecosmeticEntity;
import com.wfy.modules.tencent.service.ITencentFaceService;
import com.wfy.modules.tencent.utils.HttpRequestUtils;
import com.wfy.modules.tencent.utils.TencentAISignHolder;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 *
 * @author: wangxindong
 * @date: 2018/2/23-12:10
 */
@Service
public class TencentFaceServiceImpl implements ITencentFaceService {

    // ================================================================
    // Constants
    // ================================================================

    // ================================================================
    // Fields
    // ================================================================

    @Resource
    private TencentAiConfig tencentAiConfig;

    // ================================================================
    // Constructors
    // ================================================================

    // ================================================================
    // Methods from/for super Interfaces or SuperClass
    // ================================================================

    @Override
    public FacecosmeticEntity getFacecosmetic(FacecosmeticEntity entity) {
        Map<String, Object> params = Maps.newHashMap();
        params.put("app_id", tencentAiConfig.getAppID());
        params.put("time_stamp", System.currentTimeMillis() / 1000);
        params.put("nonce_str", Math.random());
        params.put("image", entity.getImage());
        params.put("cosmetic", entity.getCosmetic());
        params.put("sign", TencentAISignHolder.getSignature(params));

        ResponseEntity<FacecosmeticEntity> resp =
                HttpRequestUtils.post(TencentAPI.FACECOSMETIC, params, null);
        System.out.println(resp);
        if (null != resp) {
            Integer code = resp.getRet();
            if (code.equals(0)) {
                System.out.println(resp.getData());
            }
        }

        return null;
    }

    // ================================================================
    // Public or Protected Methods
    // ================================================================


    // ================================================================
    // Getter & Setter
    // ================================================================

    // ================================================================
    // Private Methods
    // ================================================================


    // ================================================================
    // Inner or Anonymous Class
    // ================================================================

    // ================================================================
    // Test Methods
    // ================================================================

}
